一、分布式部署架构
通过分布式部署,将行云管家的业务系统按功能模块分别部署在多个计算节点上,既可避免单点故障,又能充分挖掘计算资源的使用效率,从而提供高负载下的水平扩展能力。
1.1、部署架构
行云管家分布式部署架构如下图:
(1)将行云管家部署于公有云(如阿里云、腾讯云、AWS、Azure等)环境中,利用公有云的PaaS服务等资源,保障部署环境的稳定性;
(2)部署环境中采用ELB作为用户访问接入点,并由ELB分发用户流量至多门户;
(3)部署两台门户服务,做负载均衡,由两台门户服务同时承载用户的门户访问请求;
(4)部署一台监控服务,负责监控数据的采集、分析,监控服务本身并非核心服务,可以容忍其存在短暂离线,无需考虑高可用;
(5)利用公有云的RDS(MySQL8.0.27)、MongoDB(MongoDB4.2.14)以及Redis(Redis6.0.16)提供数据库服务;
(6)利用公有云的对象存储提供存储服务;
(7)根据业务和并发会话数需求,部署一至多台中转服务,由中转服务提供主机的会话创建和分发支持;
(8)特别说明1:两台门户服务器及监控服务器要求处于同一个VPC内,以使得门户服务器和监控服务器之间可以实现内网访问,同时ELB(负载均衡器)能够将访问流量分发至两台门户服务器;
(9)特别说明2:两台门户服务器及监控服务器也可以使用私有云主机,此时,要求两台门户服务器能够访问到公有云的PaaS服务,包括RDS、MongoDB、Redis以及对象存储;
1.2、部署环境资源
分布式部署基本资源需求如下表:
资源 | 操作系统 | 配置 | 数量 | 备注 |
---|---|---|---|---|
门户服务器 | CentOS7.9 | 8核CPU、16G内存、100G系统盘 | 2 | 两台门户服务器要求处于同一VPC内 |
中转服务器 | CentOS7.9 | 4核CPU、8G内存、100G系统盘 | >=1 | 中转服务器需要能够通过ELB访问到门户服务 |
监控服务器 | CentOS7.9 | 4核CPU、8G内存、100G系统盘 | 1 | 监控服务器要求与两台门户服务器处于同一VPC内 |
存储服务器 | CentOS7.9 | 4核CPU、8G内存 100G系统盘+大存储数据盘 |
1 | 可使用自有S3存储 |
服务 | 引擎版本 | 配置 | 数量 | 备注 |
MySQL | RDS MySQL 8.0.27 InnoDB存储引擎 |
100G存储 | 1 | 客户提供(使用内部数据库或购买云PaaS服务) 参数请参见下述MySQL参数表 |
MongoDB | MongoDB 4.2.14 | 3节点、4核8G、100G存储 | 1 | 客户提供(使用内部数据库或购买云PaaS服务) |
Redis | Redis 6.0.16 | 单副本、8G单节点版 | 1 | 客户提供(使用内部数据库或购买云PaaS服务) |
其他 | 配置 | 数量 | 备注 | |
负载均衡设备 | 1 | 负载均衡器SLB或弹性负载均衡ELB |
MySQL参数表如下:
参数名 | 行云管家设置值 |
---|---|
sql_mode | NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES |
init_connect | 'set names utf8mb4' |
character_set_server | utf8mb4 |
character_set_filesystem | utf8 |
1.3、部署环境网络需求
(1)门户服务器需提供对外访问能力,允许所有用户访问;
(2)门户服务主机和所有中转服务主机对所有用户开放Web(80、443)端口;
(3)如需使用本地工具,则门户服务主机和所有中转服务主机对所有用户开放8021、8022、8389、8900四个端口;
(4)如需做数据库代理访问,则门户服务主机和所有中转服务主机对所有用户开放从9000开始的数据库代理端口(每个数据库对应一个代理端口,例如:导入了3个数据库到行云管家中,则数据库代理端口分别为 9000、9001、9002);
(5)中转服务器需要对门户服务器开放22端口;
二、安装部署过程-样例
2.1、部署环境资源准备
如前述,需要准备的主机资源包括:2台门户服务器(以下“门户服务器1”简称为“portal1”、“门户服务器2”简称为“portal2”)、1台监控服务器(以下“监控服务器”简称为“monitor”)、最少1台中转服务器(以下“中转服务器”简称为“transit”);
需要准备的PaaS服务包括:RDS、MongoDB、Redis、对象存储服务;
另外,还需要准备好ELB,配置其监控两台门户服务的Web端口(80),并将Web请求分发至两台门户服务;
部署环境资源列表举例如下:
主机/服务器 | ||||
---|---|---|---|---|
名称 | 外网IP | 内网IP | 用户名 | 密码 |
门户服务器1 | 192.168.10.10 | root | Vcloud#8oUL | |
门户服务器2 | 192.168.20.10 | root | Vcloud#8oUL | |
监控服务器 | 132.42.56.113 | 192.168.10.11 | root | Vcloud#8oUL |
中转服务器 | 113.86.35.190 | 192.168.10.12 | root | Vcloud#8oUL |
服务 | ||||
名称 | 访问地址 | 用户名 | 密码 | |
RDS | rm-wq8ireu9ujgho652k.mysql.rds.aliyuncs.com | gjroot | Omfew_weo8K | |
MongoDB | Primary:dds-kosdfo7623lk.mongodb.rds.aliyuncs.com:3717 Secondary:dds-koiudo8362bn.mongodb.rds.aliyuncs.com:3717 |
root | Omfew_weo8K | |
Redis | r-iol8iitplqs96201l.redis.rds.aliyuncs.com | Omfew_weo8K | ||
OSS bucket | AccessKey:MERT89IUKuycbzpQTDGjiKW0 AccessKey Secret:PWQc9neP3k7liPkw7ou52KlHG12KM ARN:acs:ram::1924704689120320:role/uname-bucket-role-weifl Bucket:cloud-data-bucket |
2.2、安装包文件准备
分布式部署行云管家时,需要使用到行云管家安装包文件及该文件对应的MD5码文件,如:cloudguanjia_baolei_install_base_v6.5_1217.tar.gz
、cloudguanjia_baolei_install_base_v6.5_1217.tar.gz.md5sum
将行云管家安装包文件及其对应的MD5码文件拷贝至某一台门户服务器主机的/opt目录。
2.3、做服务器间的无密码登录
在portal1、portal2及monitor三台服务器上分别执行以下四行命令,实现可以在执行命令的服务器上无密码SSH登录至portal1服务器、portal2服务器和monitor服务器(注意:下述第二行命令中的192.168.10.10为portal1服务器的IP地址,第三行命令中的192.168.20.10为portal2服务器的IP地址,第四行命令中的192.168.10.11为monitor服务器的IP地址,执行命令前需要根据实际情况指定。在执行第二、第三行及第四行命令时,会提示是否继续连接,此时请输入“yes”并按回车键,接着会要求输入服务器的root账号的密码,请输入root账号的密码后按回车,在输入root账号的密码时屏幕上不会有任何显示)
ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.10.10
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.20.10
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.10.11
2.4、执行安装
2.4.1、一键式安装门户及监控服务
(1)以root账户SSH登录至portal1服务器
(2)在portal1服务器中,执行以下命令,进入/opt目录,并解压行云管家安装包(注意:下述第二行命令中的cloudguanjia_baolei_install_base_v6.5_1217.tar.gz为行云管家安装包文件的文件名,执行命令前需要根据实际情况指定)
cd /opt
tar zxvf cloudguanjia_baolei_install_base_v6.5_1217.tar.gz
(3)在portal1服务器中,执行以下命令,进入解压所得安装包目录
cd cloudguanjia_baolei_install
(4)在portal1服务器中,执行以下命令,安装门户及监控服务(注意:命令中参数以key=value形式予以指定,在实际执行前,需指定实际的value值)
./install.sh cluster redis_ip=r-iol8iitplqs96201l.redis.rds.aliyuncs.com redis_pwd=Omfew_weo8K redis_port=6379 mongo_replicaSetSeeds=dds-kosdfo7623lk.mongodb.rds.aliyuncs.com:3717,dds-koiudo8362bn.mongodb.rds.aliyuncs.com:3717 mongo_user=root mongo_pwd=Omfew_weo8K mysql_ip=rm-wq8ireu9ujgho652k.mysql.rds.aliyuncs.com mysql_port=3306 mysql_user=gjroot mysql_pwd=Omfew_weo8K portal_ips=192.168.10.10,192.168.20.10 monitor_pub_ip=132.42.56.113 monitor_pri_ip=192.168.10.11
上述安装命令执行时,会检查各主机的连通性,安装日志将输出到 /cloudbility_install_logs/ 目录下。
待命令执行完毕,即可完成门户服务及监控服务的安装。
2.4.2、配置负载均衡器ELB
门户服务安装完毕后,需要配置负载均衡器,将访问导向至两台门户服务器。
公有云的ELB配置各有不同,请参考各公有云的配置说明进行配置。
以Nginx做负载均衡器为例,在Nginx配置文件/etc/nginx/nginx.conf中加入以下内容:
http {
upstream backend {
server 192.168.10.10;
server 192.168.20.10;
}
#该服务器接受到端口80的所有流量并将其传递给上游upstream 。
#请注意,upstream名称和proxy_pass需要匹配。
server {
listen 80;
location / {
proxy_pass http://backend;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
}
再重启Nginx服务,即可实现负载均衡器配置。
三、完成安装
3.1、初始化行云管家
完成安装后,即可使用浏览器(请使用谷歌或火狐)访问 http://ip/console 来进行管理控制台初始化操作:
3.2、更新License许可
初始化完成后,可以先进行License许可更新(一般部署好后默认自带15天的使用期限,也可以等快过期时再进行更新);
(1)用root用户登录门户1、门户2、监控服务器;
(2)执行以下命令导出服务器标识并发给行云管家商务人员:/opt/cloudbility/bin/getHostId
(3)从行云管家商务人员处获取到License许可后,将License许可文件解压并改成没有中文的名称(例如xxx.txt)后放到行云管家门户服务器/opt/
目录下
(4)执行以下命令导入License许可(这里以文件名为xxx.txt为例):/opt/cloudbility/bin/import_license /opt/xxx.txt
3.3、安装中转
初始化完成后,需要参考行云管家中转安装指引在管理控制台网页中安装中转服务;
四、行云管家入门使用指引
(1)行云管家门户网址(用户正式使用网址)是http://ip/
,管理员初始账号默认是admin
使用指引请参考:行云管家门户使用指引
刚开始用建议看这个视频指引来入门操作:https://www.bilibili.com/video/BV1Xq4y1j7pd
(2)行云管家管理控制台网址(超级管理员后台配置网址)是http://ip/console/
,管理控制台管理员初始账号默认是superadmin
使用指引请参考:管理控制台使用指引
(3)行云管家门户服务器维护指引,详细介绍了行云管家对外端口及服务等;
使用指引请参考:门户服务器维护指引